/*
 * @Descripttion: 
 * @version: 
 * @Author: wtzhang
 * @Date: 2021-06-03 13:15:24
 * @LastEditors: wtzhang
 * @LastEditTime: 2021-06-03 13:47:11
 */

// 函数重载
// java 中方法的重载：重载指的是两个或者两个以上的同名函数，但它们参数不一样，这时会出现函数重载的情况。
// typescript中的重载：通过为同一个函数提供多个函数类型定义来试下多功能的目的。

// js:
/**
 * function foo1() {
  console.log(1);
}
function foo1() {
  console.log(2);
}
foo1() // 2
如上，JS中 同名函数后一个会覆盖上一个
 */
// ts中的重载
function qryUser(name: string): string;
function qryUser(age: number): number;
function qryUser(str: any): any {
  if (typeof str === 'string') {
    return `我叫：${str}`
  } else {
    return `我的年龄是：${str}`
  }
};
console.log(qryUser('jack')); // 我叫：jack
console.log(qryUser(20)); // 我的年龄是：20
// console.log(qryUser(true)); // 报错
